Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
Не вказано
Факультет:
ІСМ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Звіт
Предмет:
Програмування

Частина тексту файла

Національний технічний університет України «Київський політехнічний інститут ім. Ігоря Сікорського» Кафедра цифрових технологій в енергетиці ЗВІТ з виконання лабораторної роботи №5 з дисципліни «Програмування на мові Java» «КЛАСИ І ЇХНЄ ДОКУМЕНТУВАННЯ» Варіант 13 Завдання 2 package org.example; import java.util.Objects; import java.util.Scanner; /** * Representing an ellipse in the Cartesian coordinate system. */ class Ellipse { private double a; private double b; /** * Constructor for the Ellipse class. * * @param a Length of axis "a" of the ellipse. * @param b Length of axis "b" of the ellipse. * @throws IllegalArgumentException If both lengths are less than 0. */ public Ellipse(double a, double b) { if (a < 0 && b < 0) { throw new IllegalArgumentException("It's not an ellipse!"); } this.a = a; this.b = b; } // (x^2 / a^2) + (y^2 / b^2) = 1 /** * Calculates y for a given x in the ellipse. * * @param x x for calculating y. * @return y for the specified x. */ public double calculateY(double x) { return b * Math.sqrt(1 - Math.pow(x / a, 2)); } /** * Calculates x for a given y in the ellipse. * * @param y y for calculating x. * @return x for the specified y. */ public double calculateX(double y) { return a * Math.sqrt(1 - Math.pow(y / b, 2)); } public double getA() { return a; } public void setA(double a) { this.a = a; } public double getB() { return b; } public void setB(double b) { this.b = b; } /** * Порівнює два еліпси на рівність. * * @param obj Об'єкт для порівняння. * @return true, якщо еліпси рівні; false, в іншому випадку. */ @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null || getClass() != obj.getClass()) return false; Ellipse ellipse = (Ellipse) obj; return Double.compare(ellipse.a, a) == 0 && Double.compare(ellipse.b, b) == 0; } /** * Генерує хеш-код для еліпса. * * @return Хеш-код еліпса. */ @Override public int hashCode() { return Objects.hash(a, b); } /** * Повертає рядкове представлення еліпса. * * @return Рядкове представлення еліпса. */ @Override public String toString() { return "Ellipse: a=" + a + ", b=" + b; } } /** * Represents a Task2. */ public class Task2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Input a: "); double a = scanner.nextDouble(); System.out.print("Input b: "); double b = scanner.nextDouble(); Ellipse ellipse = new Ellipse(a, b); System.out.println(ellipse); double x = ellipse.calculateX(1.5); System.out.printf("X = %.5f\n", x); double y = ellipse.calculateY(2); System.out.printf("Y = %.5f\n", y); } } / Тести: package org.example; import java.util.Objects; import static org.junit.jupiter.api.Assertions.*; class Task2Test { @org.junit.jupiter.api.Test void calculateY() { Ellipse ellipse = new Ellipse(3.0, 2.0); double x = 2.0; double y = ellipse.calculateY(x); assertEquals(1.49071, y, 0.00001); } @org.junit.jupiter.api.Test void calculateX() { Ellipse ellipse = new Ellipse(3.0, 2.0); double y = 1.5; double x = ellipse.calculateY(y); assertEquals(1.73205, x, 0.00001); } @org.junit.jupiter.api.Test void testEquals() { Ellipse ellipse1 = new Ellipse(3.0, 2.0); Ellipse ellipse2 = new Ellipse(3.0, 2.0); boolean result = ellipse1.equals(ellipse2); assertTrue(result); } @org.junit.jupiter.api.Test void testHashCode() ...
Антиботан аватар за замовчуванням

29.02.2024 18:02

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини